<?php
/**
 * Created by PhpStorm.
 * User: zhaiyujin
 * Date: 20-3-14
 * Time: 下午4:52
 */
/**
 * 获取客户端ip地址
 * @return string ip地址
 */
function getClientIP()
{
    if (getenv("HTTP_CLIENT_IP"))
        $ip = getenv("HTTP_CLIENT_IP");
    else if (getenv("HTTP_X_FORWARDED_FOR"))
        $ip = getenv("HTTP_X_FORWARDED_FOR");
    else if (getenv("REMOTE_ADDR"))
        $ip = getenv("REMOTE_ADDR");
    else $ip = "Unknow";
    return $ip;
}

/**
 * 价格格式化
 *
 * @param int $price
 * @return string    $price_format
 */
function PriceFormat($price)
{
    $price_format = number_format($price, 2, '.', '');
    return $price_format;
}


/**
 * PHP精确计算  主要用于货币的计算用法
 * @param $n1 第一个数
 * @param $symbol 计算符号 + - * / %
 * @param $n2 第二个数
 * @param string $scale 精度 默认为小数点后两位
 * @return  string
 */
function PriceCalculate($n1, $symbol, $n2, $scale = '2')
{
    $res = "";
    if (function_exists("bcadd")) {
        switch ($symbol) {
            case "+"://加法
                $res = bcadd($n1, $n2, $scale);
                break;
            case "-"://减法
                $res = bcsub($n1, $n2, $scale);
                break;
            case "*"://乘法
                $res = bcmul($n1, $n2, $scale);
                break;
            case "/"://除法
                $res = bcdiv($n1, $n2, $scale);
                break;
            case "%"://求余、取模
                $res = bcmod($n1, $n2, $scale);
                break;
            default:
                $res = "";
                break;
        }
    } else {
        switch ($symbol) {
            case "+"://加法
                $res = $n1 + $n2;
                break;
            case "-"://减法
                $res = $n1 - $n2;
                break;
            case "*"://乘法
                $res = $n1 * $n2;
                break;
            case "/"://除法
                $res = $n1 / $n2;
                break;
            case "%"://求余、取模
                $res = $n1 % $n2;
                break;
            default:
                $res = "";
                break;
        }

    }
    return $res;

}

/**
 * 价格由元转分
 * @param $price 金额
 * @return int
 */
function ncPriceYuan2fen($price)
{
    $price = (int)PriceCalculate(100, "*", PriceFormat($price));
    return $price;
}
